﻿using System;
using System.Collections.Generic;
using FluorineFx;
using Neturion.Dados;
using Neturion.Fachadas;

namespace Neturion.Servicos
{
    [RemotingService]
    public class ServicoFornecedor
    {
        public Fornecedor Inserir(Fornecedor fornecedor, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Inserir(fornecedor, usuarioPermissao);
        }

        public Fornecedor Atualizar(Fornecedor fornecedor, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().Atualizar(fornecedor, usuarioPermissao);
        }

        public void Excluir(Fornecedor fornecedor, Usuario usuarioPermissao)
        {
            Fachada.GetInstancia().Excluir(fornecedor, usuarioPermissao);
        }

        public Fornecedor ObterFornecedorPorId(int id, Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterFornecedorPorId(id, usuarioPermissao);
        }

        public Fornecedor ObterFornecedorPorCpfCnpj(Usuario usuarioPermissao, string cpfCnpj)
        {
            return Fachada.GetInstancia().ObterFornecedorPorCpfCnpj(usuarioPermissao, cpfCnpj);
        }

        public IList<Fornecedor> ObterTodosFornecedors(Usuario usuarioPermissao)
        {
            return Fachada.GetInstancia().ObterTodosFornecedors(usuarioPermissao);
        }

        public IList<Fornecedor> ObterTodosFornecedors(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string nomeRazaoSocial, string apelidoFantasia, string nomeReduzido, string cpfCnpj, Midia midia, EnumTipoPessoa enumTipoPessoa, RamoAtividade ramoAtividade, Cnae cnae, DateTime? dataNascimentoAberturaDe, DateTime? dataNascimentoAberturaAte, DateTime? cadastroDe, DateTime? cadastroAte, DateTime? inicioVigenciaDe, DateTime? inicioVigenciaAte, DateTime? fimVigenciaDe, DateTime? fimVigenciaAte)
        {
            return Fachada.GetInstancia().ObterTodosFornecedors(inicio, quantidade, quantidadeMinima, usuarioPermissao, nomeRazaoSocial, apelidoFantasia, nomeReduzido, cpfCnpj, midia, enumTipoPessoa, ramoAtividade, cnae, dataNascimentoAberturaDe, dataNascimentoAberturaAte, cadastroDe, cadastroAte, inicioVigenciaDe, inicioVigenciaAte, fimVigenciaDe, fimVigenciaAte);
        }

        public Fornecedor ObterFornecedorPorPessoa(Usuario usuarioPermissao,Pessoa pessoa)
        {
            return Fachada.GetInstancia().ObterFornecedorPorPessoa(usuarioPermissao, pessoa);
        }

        public Fornecedor ObterFornecedorPorCodigo(Usuario usuarioPermissao, string codigo)
        {
            return Fachada.GetInstancia().ObterFornecedorPorCodigo(usuarioPermissao, codigo);
        }

        public IList<Fornecedor> ObterFornecedorPorNome(int inicio, int quantidade, int quantidadeMinima, Usuario usuarioPermissao, string nome)
        {
            return Fachada.GetInstancia().ObterFornecedorPorNome(inicio, quantidade, quantidadeMinima, usuarioPermissao, nome);
        }
    }
}